package cn.tedu.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

/**本类用于测试Collection接口*/
public class TestCollection {
    public static void main(String[] args) {
        Collection<Integer> c=new ArrayList<>();
        c.add(100);//向集合中添加元素
        c.add(200);
        c.add(300);
        c.add(400);
        c.add(500);
        System.out.println(c);//直接打印集合
//        c.clear();//清空当前集合
//        System.out.println(c);
        System.out.println(c.hashCode());//获取哈希码
        System.out.println(c.toString());//打印集合的具体元素
        System.out.println(c.equals(200));
        System.out.println(c.contains(200));//true,判断c集合中是否包含200
        System.out.println(c.isEmpty());//false 判断集合是否为空
        System.out.println(c.remove(100));//移除c集合中指定元素
        System.out.println(c);
        System.out.println(c.size());//返回集合的元素个数
        Object[] objects = c.toArray();//将指定的集合转为数组
        System.out.println(Arrays.toString(objects));
        Collection<Integer> c2=new ArrayList<>();
        c2.add(2);
        c2.add(4);
        c2.add(5);
        System.out.println(c2);
        c.addAll(c2);//把c2集合的所有元素加到c集合当中
        System.out.println(c);//c2集合所有元素追加到c集合末尾
        System.out.println(c2);//c2集合本身没有任何改变
        System.out.println("***********");
        System.out.println(c.containsAll(c2));//当前集合是否包含指定集合c2中的所有元素
        System.out.println(c.contains(200));//c是否包含单个指定元素200

        System.out.println(c.removeAll(c2));//删除c集合中属于c2集合的所有元素
        System.out.println(c.add(5));
        System.out.println(c);
        System.out.println(c.retainAll(c2));//取c集合与c2集合的交集
        System.out.println(c);
        //3.迭代集合/遍历集合
        /**迭代步骤:
         * 1.获取集合的迭代器对象 c.iterator();
         * 2.判断集合中是否有下一个可迭代的元素 it.hasNext
         * 3.获取当前迭代到的元素 it.next()*/
        Iterator<Integer> it = c.iterator();
        while (it.hasNext()){
            Integer num=it.next();
            System.out.println(num);
        }

    }
}
